QT 截取屏幕的实现 您所在的位置:网站首页 qt 截图png QT 截取屏幕的实现

QT 截取屏幕的实现

2023-11-14 00:34| 来源: 网络整理| 查看: 265

QPixmap提供了两个函数 grabWidget 和 grabWindow 可以将屏幕上的窗体存成一个 QPixmap 格式的图片,很容易再将 QPixmap 存成文件。函数使用很简单,两行代码就可以:

QPixmap pixmap = QPixmap::grabWidget(this); //this是调用该函数的QWidget 指针 pixmap.save(“widget.png”,”png”);

两个函数的原型如下:

QPixmap QPixmap::grabWindow ( WId window, int x=0, int y=0, int w=-1, int h=-1 )

WId 表示被截取窗口的ID号 x, y 表示截取范围的起始坐标 w, h 分别表示截取范围的宽度和高度,如果为 -1,则表示全部截取

QPixmap QPixmap::grabWidget ( QWidget * widget, int x=0, int y=0, int w=-1, int h=-1 )

widget表示被截取窗口的画布部分,其余参数同grabWindow

grabWidget 和 grabWindow 两种方式,差别在于带不带 标题栏

void MainWindow::on_pushButton_clicked() { QPixmap pixmap = QPixmap::grabWindow( QApplication::desktop()->winId(), pos().x(), pos().y(), frameGeometry().width(), frameGeometry().height() ); pixmap.save("d:\\a.bmp","bmp"); } void MainWindow::on_pushButton_2_clicked() { QPixmap pixmap = QPixmap::grabWidget(this); pixmap.save("d:\\b.bmp","bmp"); }

需要强调的是: 执行 grabWidget()的时候,会自动调用 paintEvent( QPaintEvent *event ) 进行重绘操作。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有